library(Seurat)
library(scHolography)
scHolography.obj <-readRDS("~/OneDrive - Northwestern University/Northwestern/Yi Lab/Manuscript/Code_2ndDraft/Human Skin/scHolography.obj_new.rds")
spatial.neighbor.Dermal <- findSpatialNeighborhood(scHolography.obj ,annotationToUse = "celltype",query.cluster = c("Dermal"),orig.assay = "RNA")
Warning: Invalid name supplied, making object name syntactically valid. New object name is Seurat..SCTransform.RNA; see ?make.names for more details on syntax validity
Calculating gene variances
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Centering and scaling data matrix
|
| | 0%
|
|===================================================================== | 50%
|
|==========================================================================================================================================| 100%
Calculating cluster 1
| | 0 % ~calculating
|+ | 1 % ~01s
|++ | 2 % ~01s
|++ | 3 % ~00s
|+++ | 5 % ~00s
|+++ | 6 % ~00s
|++++ | 7 % ~00s
|+++++ | 8 % ~00s
|+++++ | 9 % ~00s
|++++++ | 10% ~00s
|++++++ | 12% ~00s
|+++++++ | 13% ~00s
|+++++++ | 14% ~00s
|++++++++ | 15% ~00s
|+++++++++ | 16% ~00s
|+++++++++ | 17% ~00s
|++++++++++ | 19% ~00s
|++++++++++ | 20% ~00s
|+++++++++++ | 21% ~00s
|++++++++++++ | 22% ~00s
|++++++++++++ | 23% ~00s
|+++++++++++++ | 24% ~00s
|+++++++++++++ | 26% ~00s
|++++++++++++++ | 27% ~00s
|++++++++++++++ | 28% ~00s
|+++++++++++++++ | 29% ~00s
|++++++++++++++++ | 30% ~00s
|++++++++++++++++ | 31% ~00s
|+++++++++++++++++ | 33% ~00s
|+++++++++++++++++ | 34% ~00s
|++++++++++++++++++ | 35% ~00s
|+++++++++++++++++++ | 36% ~00s
|+++++++++++++++++++ | 37% ~00s
|++++++++++++++++++++ | 38% ~00s
|++++++++++++++++++++ | 40% ~00s
|+++++++++++++++++++++ | 41% ~00s
|+++++++++++++++++++++ | 42% ~00s
|++++++++++++++++++++++ | 43% ~00s
|+++++++++++++++++++++++ | 44% ~00s
|+++++++++++++++++++++++ | 45% ~00s
|++++++++++++++++++++++++ | 47% ~00s
|++++++++++++++++++++++++ | 48% ~00s
|+++++++++++++++++++++++++ | 49% ~00s
|+++++++++++++++++++++++++ | 50% ~00s
|++++++++++++++++++++++++++ | 51% ~00s
|+++++++++++++++++++++++++++ | 52% ~00s
|+++++++++++++++++++++++++++ | 53% ~00s
|++++++++++++++++++++++++++++ | 55% ~00s
|++++++++++++++++++++++++++++ | 56% ~00s
|+++++++++++++++++++++++++++++ | 57% ~00s
|++++++++++++++++++++++++++++++ | 58% ~00s
|++++++++++++++++++++++++++++++ | 59% ~00s
|+++++++++++++++++++++++++++++++ | 60% ~00s
|+++++++++++++++++++++++++++++++ | 62% ~00s
|++++++++++++++++++++++++++++++++ | 63% ~00s
|++++++++++++++++++++++++++++++++ | 64% ~00s
|+++++++++++++++++++++++++++++++++ | 65% ~00s
|++++++++++++++++++++++++++++++++++ | 66% ~00s
|++++++++++++++++++++++++++++++++++ | 67% ~00s
|+++++++++++++++++++++++++++++++++++ | 69% ~00s
|+++++++++++++++++++++++++++++++++++ | 70% ~00s
|++++++++++++++++++++++++++++++++++++ | 71% ~00s
|+++++++++++++++++++++++++++++++++++++ | 72% ~00s
|+++++++++++++++++++++++++++++++++++++ | 73% ~00s
|++++++++++++++++++++++++++++++++++++++ | 74% ~00s
|++++++++++++++++++++++++++++++++++++++ | 76% ~00s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~00s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~00s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~00s
|+++++++++++++++++++++++++++++++++++++++++ | 80% ~00s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~00s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~00s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~00s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01s
Calculating cluster 2
| | 0 % ~calculating
|+ | 1 % ~01s
|++ | 2 % ~01s
|++ | 3 % ~01s
|+++ | 4 % ~01s
|+++ | 5 % ~01s
|++++ | 7 % ~01s
|++++ | 8 % ~01s
|+++++ | 9 % ~01s
|+++++ | 10% ~01s
|++++++ | 11% ~01s
|++++++ | 12% ~01s
|+++++++ | 13% ~01s
|++++++++ | 14% ~01s
|++++++++ | 15% ~01s
|+++++++++ | 16% ~01s
|+++++++++ | 17% ~01s
|++++++++++ | 18% ~01s
|++++++++++ | 20% ~01s
|+++++++++++ | 21% ~01s
|+++++++++++ | 22% ~01s
|++++++++++++ | 23% ~01s
|++++++++++++ | 24% ~01s
|+++++++++++++ | 25% ~01s
|++++++++++++++ | 26% ~01s
|++++++++++++++ | 27% ~01s
|+++++++++++++++ | 28% ~01s
|+++++++++++++++ | 29% ~01s
|++++++++++++++++ | 30% ~01s
|++++++++++++++++ | 32% ~01s
|+++++++++++++++++ | 33% ~01s
|+++++++++++++++++ | 34% ~01s
|++++++++++++++++++ | 35% ~01s
|++++++++++++++++++ | 36% ~01s
|+++++++++++++++++++ | 37% ~01s
|++++++++++++++++++++ | 38% ~01s
|++++++++++++++++++++ | 39% ~01s
|+++++++++++++++++++++ | 40% ~01s
|+++++++++++++++++++++ | 41% ~01s
|++++++++++++++++++++++ | 42% ~01s
|++++++++++++++++++++++ | 43% ~01s
|+++++++++++++++++++++++ | 45% ~01s
|+++++++++++++++++++++++ | 46% ~01s
|++++++++++++++++++++++++ | 47% ~01s
|++++++++++++++++++++++++ | 48% ~01s
|+++++++++++++++++++++++++ | 49% ~01s
|+++++++++++++++++++++++++ | 50% ~01s
|++++++++++++++++++++++++++ | 51% ~01s
|+++++++++++++++++++++++++++ | 52% ~01s
|+++++++++++++++++++++++++++ | 53% ~01s
|++++++++++++++++++++++++++++ | 54% ~01s
|++++++++++++++++++++++++++++ | 55% ~01s
|+++++++++++++++++++++++++++++ | 57% ~01s
|+++++++++++++++++++++++++++++ | 58% ~01s
|++++++++++++++++++++++++++++++ | 59% ~01s
|++++++++++++++++++++++++++++++ | 60% ~01s
|+++++++++++++++++++++++++++++++ | 61% ~01s
|+++++++++++++++++++++++++++++++ | 62% ~00s
|++++++++++++++++++++++++++++++++ | 63% ~00s
|+++++++++++++++++++++++++++++++++ | 64% ~00s
|+++++++++++++++++++++++++++++++++ | 65% ~00s
|++++++++++++++++++++++++++++++++++ | 66% ~00s
|++++++++++++++++++++++++++++++++++ | 67% ~00s
|+++++++++++++++++++++++++++++++++++ | 68% ~00s
|+++++++++++++++++++++++++++++++++++ | 70% ~00s
|++++++++++++++++++++++++++++++++++++ | 71% ~00s
|++++++++++++++++++++++++++++++++++++ | 72% ~00s
|+++++++++++++++++++++++++++++++++++++ | 73% ~00s
|+++++++++++++++++++++++++++++++++++++ | 74% ~00s
|++++++++++++++++++++++++++++++++++++++ | 75% ~00s
|+++++++++++++++++++++++++++++++++++++++ | 76% ~00s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~00s
|++++++++++++++++++++++++++++++++++++++++ | 78% ~00s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~00s
|+++++++++++++++++++++++++++++++++++++++++ | 80% ~00s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~00s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~00s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~00s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01s
Calculating cluster 3
| | 0 % ~calculating
|+ | 1 % ~00s
|++ | 3 % ~00s
|+++ | 4 % ~00s
|+++ | 6 % ~00s
|++++ | 7 % ~00s
|+++++ | 8 % ~00s
|+++++ | 10% ~00s
|++++++ | 11% ~00s
|+++++++ | 13% ~00s
|++++++++ | 14% ~00s
|++++++++ | 15% ~00s
|+++++++++ | 17% ~00s
|++++++++++ | 18% ~00s
|++++++++++ | 20% ~00s
|+++++++++++ | 21% ~00s
|++++++++++++ | 23% ~00s
|++++++++++++ | 24% ~00s
|+++++++++++++ | 25% ~00s
|++++++++++++++ | 27% ~00s
|+++++++++++++++ | 28% ~00s
|+++++++++++++++ | 30% ~00s
|++++++++++++++++ | 31% ~00s
|+++++++++++++++++ | 32% ~00s
|+++++++++++++++++ | 34% ~00s
|++++++++++++++++++ | 35% ~00s
|+++++++++++++++++++ | 37% ~00s
|++++++++++++++++++++ | 38% ~00s
|++++++++++++++++++++ | 39% ~00s
|+++++++++++++++++++++ | 41% ~00s
|++++++++++++++++++++++ | 42% ~00s
|++++++++++++++++++++++ | 44% ~00s
|+++++++++++++++++++++++ | 45% ~00s
|++++++++++++++++++++++++ | 46% ~00s
|++++++++++++++++++++++++ | 48% ~00s
|+++++++++++++++++++++++++ | 49% ~00s
|++++++++++++++++++++++++++ | 51% ~00s
|+++++++++++++++++++++++++++ | 52% ~00s
|+++++++++++++++++++++++++++ | 54% ~00s
|++++++++++++++++++++++++++++ | 55% ~00s
|+++++++++++++++++++++++++++++ | 56% ~00s
|+++++++++++++++++++++++++++++ | 58% ~00s
|++++++++++++++++++++++++++++++ | 59% ~00s
|+++++++++++++++++++++++++++++++ | 61% ~00s
|+++++++++++++++++++++++++++++++ | 62% ~00s
|++++++++++++++++++++++++++++++++ | 63% ~00s
|+++++++++++++++++++++++++++++++++ | 65% ~00s
|++++++++++++++++++++++++++++++++++ | 66% ~00s
|++++++++++++++++++++++++++++++++++ | 68% ~00s
|+++++++++++++++++++++++++++++++++++ | 69% ~00s
|++++++++++++++++++++++++++++++++++++ | 70% ~00s
|++++++++++++++++++++++++++++++++++++ | 72% ~00s
|+++++++++++++++++++++++++++++++++++++ | 73% ~00s
|++++++++++++++++++++++++++++++++++++++ | 75% ~00s
|+++++++++++++++++++++++++++++++++++++++ | 76% ~00s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~00s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~00s
|+++++++++++++++++++++++++++++++++++++++++ | 80% ~00s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~00s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~00s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~00s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s
Calculating cluster 4
| | 0 % ~calculating
|+ | 1 % ~01s
|++ | 2 % ~01s
|++ | 3 % ~01s
|+++ | 4 % ~01s
|+++ | 5 % ~01s
|++++ | 6 % ~01s
|++++ | 7 % ~01s
|+++++ | 8 % ~01s
|+++++ | 9 % ~01s
|++++++ | 11% ~01s
|++++++ | 12% ~01s
|+++++++ | 13% ~01s
|+++++++ | 14% ~01s
|++++++++ | 15% ~01s
|++++++++ | 16% ~01s
|+++++++++ | 17% ~01s
|+++++++++ | 18% ~01s
|++++++++++ | 19% ~01s
|++++++++++ | 20% ~01s
|+++++++++++ | 21% ~01s
|++++++++++++ | 22% ~01s
|++++++++++++ | 23% ~00s
|+++++++++++++ | 24% ~00s
|+++++++++++++ | 25% ~00s
|++++++++++++++ | 26% ~00s
|++++++++++++++ | 27% ~00s
|+++++++++++++++ | 28% ~00s
|+++++++++++++++ | 29% ~00s
|++++++++++++++++ | 31% ~00s
|++++++++++++++++ | 32% ~00s
|+++++++++++++++++ | 33% ~00s
|+++++++++++++++++ | 34% ~00s
|++++++++++++++++++ | 35% ~00s
|++++++++++++++++++ | 36% ~00s
|+++++++++++++++++++ | 37% ~00s
|+++++++++++++++++++ | 38% ~00s
|++++++++++++++++++++ | 39% ~00s
|++++++++++++++++++++ | 40% ~00s
|+++++++++++++++++++++ | 41% ~00s
|++++++++++++++++++++++ | 42% ~00s
|++++++++++++++++++++++ | 43% ~00s
|+++++++++++++++++++++++ | 44% ~00s
|+++++++++++++++++++++++ | 45% ~00s
|++++++++++++++++++++++++ | 46% ~00s
|++++++++++++++++++++++++ | 47% ~00s
|+++++++++++++++++++++++++ | 48% ~00s
|+++++++++++++++++++++++++ | 49% ~00s
|++++++++++++++++++++++++++ | 51% ~00s
|++++++++++++++++++++++++++ | 52% ~00s
|+++++++++++++++++++++++++++ | 53% ~00s
|+++++++++++++++++++++++++++ | 54% ~00s
|++++++++++++++++++++++++++++ | 55% ~00s
|++++++++++++++++++++++++++++ | 56% ~00s
|+++++++++++++++++++++++++++++ | 57% ~00s
|+++++++++++++++++++++++++++++ | 58% ~00s
|++++++++++++++++++++++++++++++ | 59% ~00s
|++++++++++++++++++++++++++++++ | 60% ~00s
|+++++++++++++++++++++++++++++++ | 61% ~00s
|++++++++++++++++++++++++++++++++ | 62% ~00s
|++++++++++++++++++++++++++++++++ | 63% ~00s
|+++++++++++++++++++++++++++++++++ | 64% ~00s
|+++++++++++++++++++++++++++++++++ | 65% ~00s
|++++++++++++++++++++++++++++++++++ | 66% ~00s
|++++++++++++++++++++++++++++++++++ | 67% ~00s
|+++++++++++++++++++++++++++++++++++ | 68% ~00s
|+++++++++++++++++++++++++++++++++++ | 69% ~00s
|++++++++++++++++++++++++++++++++++++ | 71% ~00s
|++++++++++++++++++++++++++++++++++++ | 72% ~00s
|+++++++++++++++++++++++++++++++++++++ | 73% ~00s
|+++++++++++++++++++++++++++++++++++++ | 74% ~00s
|++++++++++++++++++++++++++++++++++++++ | 75% ~00s
|++++++++++++++++++++++++++++++++++++++ | 76% ~00s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~00s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~00s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~00s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~00s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~00s
|++++++++++++++++++++++++++++++++++++++++++ | 82% ~00s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~00s
|+++++++++++++++++++++++++++++++++++++++++++ | 84% ~00s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~00s
|++++++++++++++++++++++++++++++++++++++++++++ | 86% ~00s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 88% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01s
Only one SCT model is stored - skipping recalculating corrected counts
Calculating cluster 1
| | 0 % ~calculating
|+ | 1 % ~34s
|++ | 2 % ~33s
|++ | 3 % ~33s
|+++ | 4 % ~33s
|+++ | 5 % ~35s
|++++ | 6 % ~34s
|++++ | 7 % ~34s
|+++++ | 8 % ~33s
|+++++ | 9 % ~32s
|++++++ | 10% ~32s
|++++++ | 11% ~32s
|+++++++ | 12% ~31s
|+++++++ | 13% ~31s
|++++++++ | 14% ~30s
|++++++++ | 15% ~30s
|+++++++++ | 16% ~29s
|+++++++++ | 17% ~29s
|++++++++++ | 18% ~28s
|++++++++++ | 19% ~28s
|+++++++++++ | 20% ~28s
|+++++++++++ | 21% ~27s
|++++++++++++ | 22% ~27s
|++++++++++++ | 23% ~27s
|+++++++++++++ | 24% ~26s
|+++++++++++++ | 26% ~26s
|++++++++++++++ | 27% ~25s
|++++++++++++++ | 28% ~25s
|+++++++++++++++ | 29% ~25s
|+++++++++++++++ | 30% ~24s
|++++++++++++++++ | 31% ~24s
|++++++++++++++++ | 32% ~24s
|+++++++++++++++++ | 33% ~23s
|+++++++++++++++++ | 34% ~23s
|++++++++++++++++++ | 35% ~23s
|++++++++++++++++++ | 36% ~22s
|+++++++++++++++++++ | 37% ~22s
|+++++++++++++++++++ | 38% ~21s
|++++++++++++++++++++ | 39% ~21s
|++++++++++++++++++++ | 40% ~21s
|+++++++++++++++++++++ | 41% ~20s
|+++++++++++++++++++++ | 42% ~20s
|++++++++++++++++++++++ | 43% ~20s
|++++++++++++++++++++++ | 44% ~19s
|+++++++++++++++++++++++ | 45% ~19s
|+++++++++++++++++++++++ | 46% ~19s
|++++++++++++++++++++++++ | 47% ~18s
|++++++++++++++++++++++++ | 48% ~18s
|+++++++++++++++++++++++++ | 49% ~18s
|+++++++++++++++++++++++++ | 50% ~17s
|++++++++++++++++++++++++++ | 51% ~17s
|+++++++++++++++++++++++++++ | 52% ~16s
|+++++++++++++++++++++++++++ | 53% ~16s
|++++++++++++++++++++++++++++ | 54% ~16s
|++++++++++++++++++++++++++++ | 55% ~15s
|+++++++++++++++++++++++++++++ | 56% ~15s
|+++++++++++++++++++++++++++++ | 57% ~15s
|++++++++++++++++++++++++++++++ | 58% ~14s
|++++++++++++++++++++++++++++++ | 59% ~14s
|+++++++++++++++++++++++++++++++ | 60% ~14s
|+++++++++++++++++++++++++++++++ | 61% ~13s
|++++++++++++++++++++++++++++++++ | 62% ~13s
|++++++++++++++++++++++++++++++++ | 63% ~13s
|+++++++++++++++++++++++++++++++++ | 64% ~12s
|+++++++++++++++++++++++++++++++++ | 65% ~12s
|++++++++++++++++++++++++++++++++++ | 66% ~12s
|++++++++++++++++++++++++++++++++++ | 67% ~11s
|+++++++++++++++++++++++++++++++++++ | 68% ~11s
|+++++++++++++++++++++++++++++++++++ | 69% ~10s
|++++++++++++++++++++++++++++++++++++ | 70% ~10s
|++++++++++++++++++++++++++++++++++++ | 71% ~10s
|+++++++++++++++++++++++++++++++++++++ | 72% ~09s
|+++++++++++++++++++++++++++++++++++++ | 73% ~09s
|++++++++++++++++++++++++++++++++++++++ | 74% ~09s
|++++++++++++++++++++++++++++++++++++++ | 76% ~08s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~08s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~08s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~07s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~07s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~07s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~06s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~06s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~06s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~05s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~05s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~05s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=34s
Calculating cluster 2
| | 0 % ~calculating
|+ | 1 % ~10s
|+ | 2 % ~10s
|++ | 3 % ~10s
|++ | 4 % ~10s
|+++ | 5 % ~10s
|+++ | 6 % ~10s
|++++ | 7 % ~10s
|++++ | 8 % ~10s
|+++++ | 9 % ~09s
|+++++ | 10% ~09s
|++++++ | 11% ~09s
|++++++ | 12% ~09s
|+++++++ | 13% ~09s
|+++++++ | 14% ~09s
|++++++++ | 15% ~09s
|++++++++ | 16% ~09s
|+++++++++ | 17% ~09s
|+++++++++ | 18% ~08s
|++++++++++ | 19% ~08s
|++++++++++ | 20% ~08s
|+++++++++++ | 21% ~08s
|+++++++++++ | 22% ~08s
|++++++++++++ | 23% ~08s
|++++++++++++ | 24% ~08s
|+++++++++++++ | 25% ~08s
|+++++++++++++ | 26% ~08s
|++++++++++++++ | 27% ~08s
|++++++++++++++ | 28% ~07s
|+++++++++++++++ | 29% ~07s
|+++++++++++++++ | 30% ~07s
|++++++++++++++++ | 31% ~07s
|++++++++++++++++ | 32% ~07s
|+++++++++++++++++ | 33% ~07s
|+++++++++++++++++ | 34% ~07s
|++++++++++++++++++ | 35% ~07s
|++++++++++++++++++ | 36% ~07s
|+++++++++++++++++++ | 37% ~07s
|+++++++++++++++++++ | 38% ~06s
|++++++++++++++++++++ | 39% ~06s
|++++++++++++++++++++ | 40% ~06s
|+++++++++++++++++++++ | 41% ~06s
|+++++++++++++++++++++ | 42% ~06s
|++++++++++++++++++++++ | 43% ~06s
|++++++++++++++++++++++ | 44% ~06s
|+++++++++++++++++++++++ | 45% ~06s
|+++++++++++++++++++++++ | 46% ~06s
|++++++++++++++++++++++++ | 47% ~06s
|++++++++++++++++++++++++ | 48% ~06s
|+++++++++++++++++++++++++ | 49% ~05s
|+++++++++++++++++++++++++ | 50% ~05s
|++++++++++++++++++++++++++ | 51% ~05s
|++++++++++++++++++++++++++ | 52% ~05s
|+++++++++++++++++++++++++++ | 53% ~05s
|+++++++++++++++++++++++++++ | 54% ~05s
|++++++++++++++++++++++++++++ | 55% ~05s
|++++++++++++++++++++++++++++ | 56% ~05s
|+++++++++++++++++++++++++++++ | 57% ~05s
|+++++++++++++++++++++++++++++ | 58% ~04s
|++++++++++++++++++++++++++++++ | 59% ~04s
|++++++++++++++++++++++++++++++ | 60% ~04s
|+++++++++++++++++++++++++++++++ | 61% ~04s
|+++++++++++++++++++++++++++++++ | 62% ~04s
|++++++++++++++++++++++++++++++++ | 63% ~04s
|++++++++++++++++++++++++++++++++ | 64% ~04s
|+++++++++++++++++++++++++++++++++ | 65% ~04s
|+++++++++++++++++++++++++++++++++ | 66% ~04s
|++++++++++++++++++++++++++++++++++ | 67% ~03s
|++++++++++++++++++++++++++++++++++ | 68% ~03s
|+++++++++++++++++++++++++++++++++++ | 69% ~03s
|+++++++++++++++++++++++++++++++++++ | 70% ~03s
|++++++++++++++++++++++++++++++++++++ | 71% ~03s
|++++++++++++++++++++++++++++++++++++ | 72% ~03s
|+++++++++++++++++++++++++++++++++++++ | 73% ~03s
|+++++++++++++++++++++++++++++++++++++ | 74% ~03s
|++++++++++++++++++++++++++++++++++++++ | 75% ~03s
|++++++++++++++++++++++++++++++++++++++ | 76% ~03s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~02s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~02s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~02s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~02s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~02s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~02s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~02s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~02s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~02s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~01s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~01s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=10s
Calculating cluster 3
| | 0 % ~calculating
|+ | 1 % ~14s
|+ | 2 % ~14s
|++ | 3 % ~14s
|++ | 4 % ~14s
|+++ | 5 % ~14s
|+++ | 6 % ~14s
|++++ | 7 % ~14s
|++++ | 8 % ~13s
|+++++ | 9 % ~13s
|+++++ | 10% ~13s
|++++++ | 11% ~13s
|++++++ | 12% ~13s
|+++++++ | 13% ~13s
|+++++++ | 14% ~13s
|++++++++ | 15% ~12s
|++++++++ | 16% ~12s
|+++++++++ | 17% ~12s
|+++++++++ | 18% ~12s
|++++++++++ | 19% ~12s
|++++++++++ | 20% ~12s
|+++++++++++ | 21% ~12s
|+++++++++++ | 22% ~11s
|++++++++++++ | 23% ~11s
|++++++++++++ | 24% ~11s
|+++++++++++++ | 25% ~11s
|+++++++++++++ | 26% ~11s
|++++++++++++++ | 27% ~11s
|++++++++++++++ | 28% ~11s
|+++++++++++++++ | 29% ~10s
|+++++++++++++++ | 30% ~10s
|++++++++++++++++ | 31% ~10s
|++++++++++++++++ | 32% ~10s
|+++++++++++++++++ | 33% ~10s
|+++++++++++++++++ | 34% ~10s
|++++++++++++++++++ | 35% ~10s
|++++++++++++++++++ | 36% ~09s
|+++++++++++++++++++ | 37% ~09s
|+++++++++++++++++++ | 38% ~09s
|++++++++++++++++++++ | 39% ~09s
|++++++++++++++++++++ | 40% ~09s
|+++++++++++++++++++++ | 41% ~09s
|+++++++++++++++++++++ | 42% ~08s
|++++++++++++++++++++++ | 43% ~08s
|++++++++++++++++++++++ | 44% ~08s
|+++++++++++++++++++++++ | 45% ~08s
|+++++++++++++++++++++++ | 46% ~08s
|++++++++++++++++++++++++ | 47% ~08s
|++++++++++++++++++++++++ | 48% ~08s
|+++++++++++++++++++++++++ | 49% ~07s
|+++++++++++++++++++++++++ | 50% ~07s
|++++++++++++++++++++++++++ | 51% ~07s
|++++++++++++++++++++++++++ | 52% ~07s
|+++++++++++++++++++++++++++ | 53% ~07s
|+++++++++++++++++++++++++++ | 54% ~07s
|++++++++++++++++++++++++++++ | 55% ~07s
|++++++++++++++++++++++++++++ | 56% ~06s
|+++++++++++++++++++++++++++++ | 57% ~06s
|+++++++++++++++++++++++++++++ | 58% ~06s
|++++++++++++++++++++++++++++++ | 59% ~06s
|++++++++++++++++++++++++++++++ | 60% ~06s
|+++++++++++++++++++++++++++++++ | 61% ~06s
|+++++++++++++++++++++++++++++++ | 62% ~06s
|++++++++++++++++++++++++++++++++ | 63% ~05s
|++++++++++++++++++++++++++++++++ | 64% ~05s
|+++++++++++++++++++++++++++++++++ | 65% ~05s
|+++++++++++++++++++++++++++++++++ | 66% ~05s
|++++++++++++++++++++++++++++++++++ | 67% ~05s
|++++++++++++++++++++++++++++++++++ | 68% ~05s
|+++++++++++++++++++++++++++++++++++ | 69% ~05s
|+++++++++++++++++++++++++++++++++++ | 70% ~04s
|++++++++++++++++++++++++++++++++++++ | 71% ~04s
|++++++++++++++++++++++++++++++++++++ | 72% ~04s
|+++++++++++++++++++++++++++++++++++++ | 73% ~04s
|+++++++++++++++++++++++++++++++++++++ | 74% ~04s
|++++++++++++++++++++++++++++++++++++++ | 75% ~04s
|++++++++++++++++++++++++++++++++++++++ | 76% ~04s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~03s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~03s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~03s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~03s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~03s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~03s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~02s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~02s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~02s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~02s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~02s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=15s
Calculating cluster 4
| | 0 % ~calculating
|+ | 1 % ~17s
|++ | 2 % ~17s
|++ | 3 % ~16s
|+++ | 4 % ~16s
|+++ | 5 % ~16s
|++++ | 6 % ~16s
|++++ | 7 % ~16s
|+++++ | 8 % ~16s
|+++++ | 9 % ~15s
|++++++ | 10% ~15s
|++++++ | 11% ~15s
|+++++++ | 12% ~15s
|+++++++ | 13% ~15s
|++++++++ | 14% ~15s
|++++++++ | 15% ~14s
|+++++++++ | 16% ~14s
|+++++++++ | 17% ~14s
|++++++++++ | 18% ~14s
|++++++++++ | 19% ~14s
|+++++++++++ | 20% ~14s
|+++++++++++ | 21% ~13s
|++++++++++++ | 22% ~13s
|++++++++++++ | 23% ~13s
|+++++++++++++ | 24% ~13s
|+++++++++++++ | 26% ~13s
|++++++++++++++ | 27% ~13s
|++++++++++++++ | 28% ~12s
|+++++++++++++++ | 29% ~12s
|+++++++++++++++ | 30% ~12s
|++++++++++++++++ | 31% ~12s
|++++++++++++++++ | 32% ~12s
|+++++++++++++++++ | 33% ~11s
|+++++++++++++++++ | 34% ~11s
|++++++++++++++++++ | 35% ~11s
|++++++++++++++++++ | 36% ~11s
|+++++++++++++++++++ | 37% ~11s
|+++++++++++++++++++ | 38% ~11s
|++++++++++++++++++++ | 39% ~10s
|++++++++++++++++++++ | 40% ~10s
|+++++++++++++++++++++ | 41% ~10s
|+++++++++++++++++++++ | 42% ~10s
|++++++++++++++++++++++ | 43% ~10s
|++++++++++++++++++++++ | 44% ~10s
|+++++++++++++++++++++++ | 45% ~10s
|+++++++++++++++++++++++ | 46% ~09s
|++++++++++++++++++++++++ | 47% ~09s
|++++++++++++++++++++++++ | 48% ~09s
|+++++++++++++++++++++++++ | 49% ~09s
|+++++++++++++++++++++++++ | 50% ~09s
|++++++++++++++++++++++++++ | 51% ~08s
|+++++++++++++++++++++++++++ | 52% ~08s
|+++++++++++++++++++++++++++ | 53% ~08s
|++++++++++++++++++++++++++++ | 54% ~08s
|++++++++++++++++++++++++++++ | 55% ~08s
|+++++++++++++++++++++++++++++ | 56% ~08s
|+++++++++++++++++++++++++++++ | 57% ~07s
|++++++++++++++++++++++++++++++ | 58% ~07s
|++++++++++++++++++++++++++++++ | 59% ~07s
|+++++++++++++++++++++++++++++++ | 60% ~07s
|+++++++++++++++++++++++++++++++ | 61% ~07s
|++++++++++++++++++++++++++++++++ | 62% ~07s
|++++++++++++++++++++++++++++++++ | 63% ~06s
|+++++++++++++++++++++++++++++++++ | 64% ~06s
|+++++++++++++++++++++++++++++++++ | 65% ~06s
|++++++++++++++++++++++++++++++++++ | 66% ~06s
|++++++++++++++++++++++++++++++++++ | 67% ~06s
|+++++++++++++++++++++++++++++++++++ | 68% ~05s
|+++++++++++++++++++++++++++++++++++ | 69% ~05s
|++++++++++++++++++++++++++++++++++++ | 70% ~05s
|++++++++++++++++++++++++++++++++++++ | 71% ~05s
|+++++++++++++++++++++++++++++++++++++ | 72% ~05s
|+++++++++++++++++++++++++++++++++++++ | 73% ~05s
|++++++++++++++++++++++++++++++++++++++ | 74% ~04s
|++++++++++++++++++++++++++++++++++++++ | 76% ~04s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~04s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~04s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~03s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~03s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~03s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~02s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~02s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=17s

spatial.neighbor.Dermal$neighbor.marker %>%
group_by(cluster) %>%
top_n(n = 10, wt = avg_log2FC) -> top10
DoHeatmap(spatial.neighbor.Dermal$bulk.count.obj,assay = "SCT", features = top10$gene) + NoLegend()+viridis::scale_fill_viridis()
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.

spatial.neighbor.Dermal$sc.marker %>%
group_by(cluster) %>%
top_n(n = 10, wt = avg_log2FC) -> top10b
DoHeatmap(spatial.neighbor.Dermal$query.only.obj$scHolography.sc,assay = "SCT", features = top10b$gene,group.by = "spatial.neighborhood") + NoLegend()+viridis::scale_fill_viridis()
Warning: The following features were omitted as they were not found in the scale.data slot for the SCT assay: MYH11, ADH1B, MESTScale for fill is already present.
Adding another scale for fill, which will replace the existing scale.

library(RColorBrewer)
fib.sp.col <- c(c(colorRampPalette(brewer.pal(12,"Paired"))(10)[1],(brewer.pal(4,"Greens"))),colorRampPalette(brewer.pal(12,"Paired"))(10)[c(2,4:10)])
scene = list(camera = list(eye = list(x = -1, z = 0, y = 2)))
library(ggplot2)
tiff("~/OneDrive - Northwestern University/Northwestern/Yi Lab/Manuscript/Code_2ndDraft/Human Skin/Fib.spatial.neighbor.heatmap.tiff", units="in", width=8, height=9, res=300)
DoHeatmap(spatial.neighbor.Dermal$bulk.count.obj,assay = "SCT", features = top10$gene,group.colors = brewer.pal(4,"Greens")) + NoLegend()+viridis::scale_fill_viridis()+theme(axis.text = element_text(size = 16,face = "bold"))
dev.off()
library(RColorBrewer)
scene = list(camera = list(eye = list(x = -1, z = 0, y = 2)))
fib1 <- scHolography::scHolographyPlot(spatial.neighbor.Dermal$scHolography.obj,color.by = "spatial.neighborhood",color = fib.sp.col,cells = which(spatial.neighbor.Dermal$scHolography.obj$scHolography.sc$celltype%in%c("Basal","Dermal","Endothelial","Smooth Muscle")))%>% plotly::layout(scene = scene)
plotly::orca(fib1, "3d.fib.svg",width = 7,height = 5)
fib1
fib1234 <- spatial.neighbor.Dermal$query.only.obj$scHolography.sc
fib1234$spatial.neighborhood <-paste0("Dermal_",fib1234$spatial.neighborhood)
fib1234$spatial.neighborhood <- factor(fib1234$spatial.neighborhood ,levels = sort(unique(fib1234$spatial.neighborhood )))
fib1234 <- SetIdent(fib1234,value ="spatial.neighborhood")
tiff("~/OneDrive - Northwestern University/Northwestern/Yi Lab/Manuscript/Code_2ndDraft/Human Skin/Fib.peri.vln.mark.plot.tiff", units="in", width=5, height=5, res=300)
VlnPlot(fib1234,c("RGS5","NOTCH3","MYH11","ACTA2"),assay = "SCT",ncol = 2,cols = (brewer.pal(4,"Greens")))
dev.off()
tiff("~/OneDrive - Northwestern University/Northwestern/Yi Lab/Manuscript/Code_2ndDraft/Human Skin/Fib.1234.col.vln.mark.plot.tiff", units="in", width=5, height=2.5, res=300)
VlnPlot(fib1234,c("COL1A2","DCN"),assay = "SCT",ncol = 2,cols = (brewer.pal(4,"Greens")))
dev.off()
tiff("~/OneDrive - Northwestern University/Northwestern/Yi Lab/Manuscript/Code_2ndDraft/Human Skin/Fib.1234.four.stack.vln.mark.plot.tiff", units="in", width=5, height=6, res=600)
VlnPlot(fib1234,c("APCDD1","TWIST2","ADH1B","GREM1","ABCA8","IGF1","RGS5","NOTCH3"),assay = "SCT",stack = T,flip = T)+NoLegend()+theme(axis.text = element_text(size = 16,face = "bold"),axis.title.x = element_blank(),axis.title.y = element_text(size = 16,face = "bold") ,axis.text.x = element_text(angle = 30,hjust=1))+scale_fill_manual(values = c("#EDF8E9","#EDF8E9", "#BAE4B3" ,"#BAE4B3" ,"#74C476","#74C476", "#238B45", "#238B45"))
dev.off()
tiff("~/OneDrive - Northwestern University/Northwestern/Yi Lab/Manuscript/Code_3rdDraft//clusterDist.Fib1.2.3.4.to.4_rev.tiff", units="in", width=5, height=5, res=600)
scHolography::clusterDistanceBoxplot(spatial.neighbor.Dermal$scHolography.obj,annotationToUse = "spatial.neighborhood",query.cluster.list = (paste0("Dermal_",c(1:4))),reference.cluster = c("Dermal_4"))+ggplot2::scale_fill_manual(values = (brewer.pal(4,"Greens"))[1:4])+
geom_signif(comparisons = my_comparisons,test.args = list(size=5),map_signif_level = TRUE)+NoLegend()+theme(axis.text = element_text(size = 16,face = "bold"),axis.title.x = element_blank(),axis.title.y = element_text(size = 20,face = "bold") ,axis.text.x = element_text(angle = 45,hjust=1))+ylab("SMN Distance")
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
dev.off()
null device
1
dyn.fib <-findGeneSpatialDynamics(spatial.neighbor.Dermal$scHolography.obj,query.cluster = paste0("Dermal_",c(1:3)),ref.cluster = c("Smooth Muscle"),annotationToUse = "spatial.neighborhood",assayToUse = "SCT")
spatialDynamicsFeaturePlot(spatial.neighbor.Dermal$scHolography.obj,query.cluster = paste0("Dermal_",c(1:3)),ref.cluster = c("Smooth Muscle"),annotationToUse = "spatial.neighborhood",geneOI = c(head(dyn.fib)$gene,tail(dyn.fib)$gene),assayToUse = "SCT")
tiff("~/OneDrive - Northwestern University/Northwestern/Yi Lab/Manuscript/Code_2ndDraft/Human Skin/Fib.spatial.neighbor.1-4.dyn.heat.tiff", units="in", width=12, height=8, res=300)
spatialDynamicsFeaturePlot(spatial.neighbor.Dermal$scHolography.obj,query.cluster=paste0("Dermal_",1:4),ref.cluster = c("Dermal_4"),annotationToUse = "spatial.neighborhood",geneOI = c("APCDD1","TWIST2","WNT5A","POSTN","SFRP2","GREM1","ADH1B","IGF1","ABCA8","CXCL12","MFAP5","RGS5","NOTCH3","ACTA2","MYH11"),assayToUse = "SCT",self.color = c((colorRampPalette(brewer.pal(12,"Paired"))(10)[1]),(brewer.pal(4,"Greens")),(colorRampPalette(brewer.pal(12,"Paired"))(10)[3:10])))
dev.off()
tiff("~/OneDrive - Northwestern University/Northwestern/Yi Lab/Manuscript/Code_2ndDraft/Human Skin/Fib.spatial.neighbor.distal.col6a5.tiff", units="in", width=5, height=4, res=300)
expressionByDistPlot(spatial.neighbor.Dermal$scHolography.obj,query.cluster=paste0("Dermal_",1:3),ref.cluster = c("Smooth Muscle"),annotationToUse = "spatial.neighborhood",geneOI = "COL6A5",assayToUse = "SCT")
dev.off()
tiff("~/OneDrive - Northwestern University/Northwestern/Yi Lab/Manuscript/Code_2ndDraft/Human Skin/Fib.spatial.neighbor.proximal.mfap5.tiff", units="in", width=5, height=4, res=300)
expressionByDistPlot(spatial.neighbor.Dermal$scHolography.obj,query.cluster=paste0("Dermal_",1:3),ref.cluster = c("Smooth Muscle"),annotationToUse = "spatial.neighborhood",geneOI = "MFAP5",assayToUse = "SCT")
dev.off()
fib.sub <- spatial.neighbor.Dermal$scHolography.obj$scHolography.sc
tiff("~/OneDrive - Northwestern University/Northwestern/Yi Lab/Manuscript/Code_2ndDraft/Human Skin//dermal.spatial.cluster.tiff", units="in", width=4, height=4, res=300)
DimPlot(fib.sub,group.by = "spatial.neighborhood",reduction = "ind.umap",cells = which(fib.sub$celltype%in%"Dermal"))+ggtitle("Spatial Neighborhoods")+scale_colour_manual(values = brewer.pal(4,"Greens"))+NoLegend()
dev.off()
tiff("~/OneDrive - Northwestern University/Northwestern/Yi Lab/Manuscript/Code_2ndDraft/Human Skin//dermal.seurat.cluster.tiff", units="in", width=4, height=4, res=300)
DimPlot(fib.sub,group.by = "orig.cluster",reduction = "ind.umap",cells = which(fib.sub$celltype%in%"Dermal"))+ggtitle("Seurat Cluster")+scale_color_brewer(palette = "Set1")+NoLegend()
dev.off()
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkoU2V1cmF0KQpsaWJyYXJ5KHNjSG9sb2dyYXBoeSkKc2NIb2xvZ3JhcGh5Lm9iaiA8LXJlYWRSRFMoIn4vT25lRHJpdmUgLSBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS9Ob3J0aHdlc3Rlcm4vWWkgTGFiL01hbnVzY3JpcHQvQ29kZV8ybmREcmFmdC9IdW1hbiBTa2luL3NjSG9sb2dyYXBoeS5vYmpfbmV3LnJkcyIpCgpgYGAKCmBgYHtyfQoKc3BhdGlhbC5uZWlnaGJvci5EZXJtYWwgPC0gZmluZFNwYXRpYWxOZWlnaGJvcmhvb2Qoc2NIb2xvZ3JhcGh5Lm9iaiAsYW5ub3RhdGlvblRvVXNlID0gImNlbGx0eXBlIixxdWVyeS5jbHVzdGVyID0gYygiRGVybWFsIiksb3JpZy5hc3NheSA9ICJSTkEiKQpgYGAKCmBgYHtyfQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KFNldXJhdCkKCnNwYXRpYWwubmVpZ2hib3IuRGVybWFsJHNjSG9sb2dyYXBoeS5vYmokc2NIb2xvZ3JhcGh5LnNjJHNwYXRpYWwubmVpZ2hib3Job29kW3doaWNoKHNwYXRpYWwubmVpZ2hib3IuRGVybWFsJHNjSG9sb2dyYXBoeS5vYmokc2NIb2xvZ3JhcGh5LnNjJHNwYXRpYWwubmVpZ2hib3Job29kJWluJWMoYXMuY2hhcmFjdGVyKDE6NCkpKV0gPC0gcGFzdGUwKCJEZXJtYWxfIixzcGF0aWFsLm5laWdoYm9yLkRlcm1hbCRzY0hvbG9ncmFwaHkub2JqJHNjSG9sb2dyYXBoeS5zYyRzcGF0aWFsLm5laWdoYm9yaG9vZFt3aGljaChzcGF0aWFsLm5laWdoYm9yLkRlcm1hbCRzY0hvbG9ncmFwaHkub2JqJHNjSG9sb2dyYXBoeS5zYyRzcGF0aWFsLm5laWdoYm9yaG9vZCVpbiVjKGFzLmNoYXJhY3RlcigxOjQpKSldKQoKZmliLnNwLmNvbCA8LSAgYyhjKGNvbG9yUmFtcFBhbGV0dGUoUkNvbG9yQnJld2VyOjpicmV3ZXIucGFsKDEyLCJQYWlyZWQiKSkoMTApWzFdLChSQ29sb3JCcmV3ZXI6OmJyZXdlci5wYWwoNCwiR3JlZW5zIikpKSxjb2xvclJhbXBQYWxldHRlKFJDb2xvckJyZXdlcjo6YnJld2VyLnBhbCgxMiwiUGFpcmVkIikpKDEwKVtjKDIsNDoxMCldKQpuZWlnaGJvci5jb21wIDwtIHNjSG9sb2dyYXBoeTo6c2NIb2xvZ3JhcGh5TmVpZ2hib3JDb21wUGxvdChzcGF0aWFsLm5laWdoYm9yLkRlcm1hbCRzY0hvbG9ncmFwaHkub2JqLGFubm90YXRpb25Ub1VzZSA9ICJzcGF0aWFsLm5laWdoYm9yaG9vZCIscXVlcnkuY2x1c3RlciA9IHBhc3RlMCgiRGVybWFsXyIsMTo0KSxjb2xvciA9IGZpYi5zcC5jb2wpCmxpYnJhcnkoZ2dwbG90MikKdGlmZigifi9PbmVEcml2ZSAtIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5L05vcnRod2VzdGVybi9ZaSBMYWIvTWFudXNjcmlwdC9Db2RlXzJuZERyYWZ0L0h1bWFuIFNraW4vRmliLnNwYXRpYWwubmVpZ2hib3IuY29tcC50aWZmIiwgdW5pdHM9ImluIiwgd2lkdGg9NSwgaGVpZ2h0PTYsIHJlcz02MDApCm5laWdoYm9yLmNvbXAkbmVpZ2hib3IuY29tcC5wbG90K3RoZW1lKGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTYsZmFjZSA9ICJib2xkIiksYXhpcy50aXRsZS54ID0gZWxlbWVudF9ibGFuaygpLGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMjAsZmFjZSA9ICJib2xkIikgLGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gMzAsaGp1c3Q9MSkpK05vTGVnZW5kKCkKZGV2Lm9mZigpCgpgYGAKCmBgYHtyfQpzcGF0aWFsLm5laWdoYm9yLkRlcm1hbCRuZWlnaGJvci5tYXJrZXIgJT4lCiAgZ3JvdXBfYnkoY2x1c3RlcikgJT4lCiAgdG9wX24obiA9IDEwLCB3dCA9IGF2Z19sb2cyRkMpIC0+IHRvcDEwCkRvSGVhdG1hcChzcGF0aWFsLm5laWdoYm9yLkRlcm1hbCRidWxrLmNvdW50Lm9iaixhc3NheSA9ICJTQ1QiLCBmZWF0dXJlcyA9IHRvcDEwJGdlbmUpICsgTm9MZWdlbmQoKSt2aXJpZGlzOjpzY2FsZV9maWxsX3ZpcmlkaXMoKQpzcGF0aWFsLm5laWdoYm9yLkRlcm1hbCRzYy5tYXJrZXIgJT4lCiAgZ3JvdXBfYnkoY2x1c3RlcikgJT4lCiAgdG9wX24obiA9IDEwLCB3dCA9IGF2Z19sb2cyRkMpIC0+IHRvcDEwYgpEb0hlYXRtYXAoc3BhdGlhbC5uZWlnaGJvci5EZXJtYWwkcXVlcnkub25seS5vYmokc2NIb2xvZ3JhcGh5LnNjLGFzc2F5ID0gIlNDVCIsIGZlYXR1cmVzID0gdG9wMTBiJGdlbmUsZ3JvdXAuYnkgPSAic3BhdGlhbC5uZWlnaGJvcmhvb2QiKSArIE5vTGVnZW5kKCkrdmlyaWRpczo6c2NhbGVfZmlsbF92aXJpZGlzKCkKbGlicmFyeShSQ29sb3JCcmV3ZXIpCgpmaWIuc3AuY29sIDwtICBjKGMoY29sb3JSYW1wUGFsZXR0ZShicmV3ZXIucGFsKDEyLCJQYWlyZWQiKSkoMTApWzFdLChicmV3ZXIucGFsKDQsIkdyZWVucyIpKSksY29sb3JSYW1wUGFsZXR0ZShicmV3ZXIucGFsKDEyLCJQYWlyZWQiKSkoMTApW2MoMiw0OjEwKV0pCgoKc2NlbmUgPSBsaXN0KGNhbWVyYSA9IGxpc3QoZXllID0gbGlzdCh4ID0gLTEsIHogPSAwLCB5ID0gMikpKQoKZmlnMSA8LSBzY0hvbG9ncmFwaHk6OnNjSG9sb2dyYXBoeVBsb3Qoc3BhdGlhbC5uZWlnaGJvci5EZXJtYWwkc2NIb2xvZ3JhcGh5Lm9iaixjb2xvci5ieSA9ICJzcGF0aWFsLm5laWdoYm9yaG9vZCIsY29sb3IgPSBmaWIuc3AuY29sKSU+JSBwbG90bHk6OmxheW91dChzY2VuZSA9IHNjZW5lKQpwbG90bHk6Om9yY2EoZmlnMSwgIjNkLmZpYi5hbGwuY2VsbHR5cGUuc3ZnIix3aWR0aCA9IDcsaGVpZ2h0ID0gNSkKCmZpZzIgPC0gc2NIb2xvZ3JhcGh5OjpzY0hvbG9ncmFwaHlQbG90KHNwYXRpYWwubmVpZ2hib3IuRGVybWFsJHNjSG9sb2dyYXBoeS5vYmosY29sb3IuYnkgPSAic3BhdGlhbC5uZWlnaGJvcmhvb2QiLGNvbG9yID0gZmliLnNwLmNvbCwgY2VsbHMgPSB3aGljaChzcGF0aWFsLm5laWdoYm9yLkRlcm1hbCRzY0hvbG9ncmFwaHkub2JqJHNjSG9sb2dyYXBoeS5zYyRjZWxsdHlwZSVpbiVjKCJCYXNhbCIsIkRlcm1hbCIsIlNtb290aCBNdXNjbGUiKSkpJT4lIHBsb3RseTo6bGF5b3V0KHNjZW5lID0gc2NlbmUpCnBsb3RseTo6b3JjYShmaWcyLCAiM2QuZmliLmJhc2FsLmRlcm0uc20uc3ZnIix3aWR0aCA9IDcsaGVpZ2h0ID0gNSkKCmZpZzMgPC0gc2NIb2xvZ3JhcGh5OjpzY0hvbG9ncmFwaHlQbG90KHNwYXRpYWwubmVpZ2hib3IuRGVybWFsJHNjSG9sb2dyYXBoeS5vYmosY29sb3IuYnkgPSAic3BhdGlhbC5uZWlnaGJvcmhvb2QiLGNvbG9yID0gZmliLnNwLmNvbCxjZWxscyA9IHdoaWNoKHNwYXRpYWwubmVpZ2hib3IuRGVybWFsJHNjSG9sb2dyYXBoeS5vYmokc2NIb2xvZ3JhcGh5LnNjJGNlbGx0eXBlJWluJWMoIkRlcm1hbCIpKSklPiUgcGxvdGx5OjpsYXlvdXQoc2NlbmUgPSBzY2VuZSkKcGxvdGx5OjpvcmNhKGZpZzMsICIzZC5maWIuYWxvbmUuc3ZnIix3aWR0aCA9IDcsaGVpZ2h0ID0gNSkKCmZpZzQgPC0gc2NIb2xvZ3JhcGh5OjpzY0hvbG9ncmFwaHlQbG90KHNwYXRpYWwubmVpZ2hib3IuRGVybWFsJHNjSG9sb2dyYXBoeS5vYmosY29sb3IuYnkgPSAic3BhdGlhbC5uZWlnaGJvcmhvb2QiLGNvbG9yID0gZmliLnNwLmNvbCxjZWxscyA9IHdoaWNoKHNwYXRpYWwubmVpZ2hib3IuRGVybWFsJHNjSG9sb2dyYXBoeS5vYmokc2NIb2xvZ3JhcGh5LnNjJGNlbGx0eXBlJWluJWMoIkRlcm1hbCIsIkVuZG90aGVsaWFsIikpKSU+JSBwbG90bHk6OmxheW91dChzY2VuZSA9IHNjZW5lKQpwbG90bHk6Om9yY2EoZmlnNCwgIjNkLmZpYi5lbmRvLnN2ZyIsd2lkdGggPSA3LGhlaWdodCA9IDUpCgpmaWc1IDwtIHNjSG9sb2dyYXBoeTo6c2NIb2xvZ3JhcGh5UGxvdChzcGF0aWFsLm5laWdoYm9yLkRlcm1hbCRzY0hvbG9ncmFwaHkub2JqLGNvbG9yLmJ5ID0gImNlbGx0eXBlIixjZWxscyA9IHdoaWNoKHNwYXRpYWwubmVpZ2hib3IuRGVybWFsJHNjSG9sb2dyYXBoeS5vYmokc2NIb2xvZ3JhcGh5LnNjJGNlbGx0eXBlJWluJWMoIkJhc2FsIiwiRGVybWFsIiwiU21vb3RoIE11c2NsZSIpKSklPiUgcGxvdGx5OjpsYXlvdXQoc2NlbmUgPSBzY2VuZSkKcGxvdGx5OjpvcmNhKGZpZzUsICIzZC5maWIuYmFzYWwuZGVybS5zbS5vZy50eXBlLnN2ZyIsd2lkdGggPSA3LGhlaWdodCA9IDUpCgoKZmlnMQpmaWcyCmZpZzMKZmlnNApmaWc1CmBgYAoKCmBgYHtyfQpsaWJyYXJ5KGdncGxvdDIpCnRpZmYoIn4vT25lRHJpdmUgLSBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS9Ob3J0aHdlc3Rlcm4vWWkgTGFiL01hbnVzY3JpcHQvQ29kZV8ybmREcmFmdC9IdW1hbiBTa2luL0ZpYi5zcGF0aWFsLm5laWdoYm9yLmhlYXRtYXAudGlmZiIsIHVuaXRzPSJpbiIsIHdpZHRoPTgsIGhlaWdodD05LCByZXM9MzAwKQpEb0hlYXRtYXAoc3BhdGlhbC5uZWlnaGJvci5EZXJtYWwkYnVsay5jb3VudC5vYmosYXNzYXkgPSAiU0NUIiwgZmVhdHVyZXMgPSB0b3AxMCRnZW5lLGdyb3VwLmNvbG9ycyA9IGJyZXdlci5wYWwoNCwiR3JlZW5zIikpICsgTm9MZWdlbmQoKSt2aXJpZGlzOjpzY2FsZV9maWxsX3ZpcmlkaXMoKSt0aGVtZShheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2LGZhY2UgPSAiYm9sZCIpKQpkZXYub2ZmKCkKYGBgCgpgYGB7cn0KbGlicmFyeShSQ29sb3JCcmV3ZXIpCnNjZW5lID0gbGlzdChjYW1lcmEgPSBsaXN0KGV5ZSA9IGxpc3QoeCA9IC0xLCB6ID0gMCwgeSA9IDIpKSkKCmZpYjEgPC0gc2NIb2xvZ3JhcGh5OjpzY0hvbG9ncmFwaHlQbG90KHNwYXRpYWwubmVpZ2hib3IuRGVybWFsJHNjSG9sb2dyYXBoeS5vYmosY29sb3IuYnkgPSAic3BhdGlhbC5uZWlnaGJvcmhvb2QiLGNvbG9yID0gZmliLnNwLmNvbCxjZWxscyA9IHdoaWNoKHNwYXRpYWwubmVpZ2hib3IuRGVybWFsJHNjSG9sb2dyYXBoeS5vYmokc2NIb2xvZ3JhcGh5LnNjJGNlbGx0eXBlJWluJWMoIkJhc2FsIiwiRGVybWFsIiwiRW5kb3RoZWxpYWwiLCJTbW9vdGggTXVzY2xlIikpKSU+JSBwbG90bHk6OmxheW91dChzY2VuZSA9IHNjZW5lKQpwbG90bHk6Om9yY2EoZmliMSwgIjNkLmZpYi5zdmciLHdpZHRoID0gNyxoZWlnaHQgPSA1KQoKZmliMQpgYGAKCgoKYGBge3J9CmZpYjEyMzQgPC0gc3BhdGlhbC5uZWlnaGJvci5EZXJtYWwkcXVlcnkub25seS5vYmokc2NIb2xvZ3JhcGh5LnNjCmZpYjEyMzQkc3BhdGlhbC5uZWlnaGJvcmhvb2QgPC1wYXN0ZTAoIkRlcm1hbF8iLGZpYjEyMzQkc3BhdGlhbC5uZWlnaGJvcmhvb2QpCmZpYjEyMzQkc3BhdGlhbC5uZWlnaGJvcmhvb2QgPC0gZmFjdG9yKGZpYjEyMzQkc3BhdGlhbC5uZWlnaGJvcmhvb2QgLGxldmVscyA9IHNvcnQodW5pcXVlKGZpYjEyMzQkc3BhdGlhbC5uZWlnaGJvcmhvb2QgKSkpCmZpYjEyMzQgPC0gU2V0SWRlbnQoZmliMTIzNCx2YWx1ZSA9InNwYXRpYWwubmVpZ2hib3Job29kIikKCnRpZmYoIn4vT25lRHJpdmUgLSBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS9Ob3J0aHdlc3Rlcm4vWWkgTGFiL01hbnVzY3JpcHQvQ29kZV8ybmREcmFmdC9IdW1hbiBTa2luL0ZpYi5wZXJpLnZsbi5tYXJrLnBsb3QudGlmZiIsIHVuaXRzPSJpbiIsIHdpZHRoPTUsIGhlaWdodD01LCByZXM9MzAwKQpWbG5QbG90KGZpYjEyMzQsYygiUkdTNSIsIk5PVENIMyIsIk1ZSDExIiwiQUNUQTIiKSxhc3NheSA9ICJTQ1QiLG5jb2wgPSAyLGNvbHMgPSAoYnJld2VyLnBhbCg0LCJHcmVlbnMiKSkpCmRldi5vZmYoKQoKdGlmZigifi9PbmVEcml2ZSAtIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5L05vcnRod2VzdGVybi9ZaSBMYWIvTWFudXNjcmlwdC9Db2RlXzJuZERyYWZ0L0h1bWFuIFNraW4vRmliLjEyMzQuY29sLnZsbi5tYXJrLnBsb3QudGlmZiIsIHVuaXRzPSJpbiIsIHdpZHRoPTUsIGhlaWdodD0yLjUsIHJlcz0zMDApClZsblBsb3QoZmliMTIzNCxjKCJDT0wxQTIiLCJEQ04iKSxhc3NheSA9ICJTQ1QiLG5jb2wgPSAyLGNvbHMgPSAoYnJld2VyLnBhbCg0LCJHcmVlbnMiKSkpCmRldi5vZmYoKQoKYGBgCmBgYHtyfQp0aWZmKCJ+L09uZURyaXZlIC0gTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkvTm9ydGh3ZXN0ZXJuL1lpIExhYi9NYW51c2NyaXB0L0NvZGVfMm5kRHJhZnQvSHVtYW4gU2tpbi9GaWIuMTIzNC5mb3VyLnN0YWNrLnZsbi5tYXJrLnBsb3QudGlmZiIsIHVuaXRzPSJpbiIsIHdpZHRoPTUsIGhlaWdodD02LCByZXM9NjAwKQpWbG5QbG90KGZpYjEyMzQsYygiQVBDREQxIiwiVFdJU1QyIiwiQURIMUIiLCJHUkVNMSIsIkFCQ0E4IiwiSUdGMSIsIlJHUzUiLCJOT1RDSDMiKSxhc3NheSA9ICJTQ1QiLHN0YWNrID0gVCxmbGlwID0gVCkrTm9MZWdlbmQoKSt0aGVtZShheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2LGZhY2UgPSAiYm9sZCIpLGF4aXMudGl0bGUueCA9IGVsZW1lbnRfYmxhbmsoKSxheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2LGZhY2UgPSAiYm9sZCIpICxheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDMwLGhqdXN0PTEpKStzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCIjRURGOEU5IiwiI0VERjhFOSIsICIjQkFFNEIzIiAsIiNCQUU0QjMiICwiIzc0QzQ3NiIsIiM3NEM0NzYiLCAiIzIzOEI0NSIsICIjMjM4QjQ1IikpCmRldi5vZmYoKQpgYGAKCmBgYHtyfQpsaWJyYXJ5KGdncHVicikKbXlfY29tcGFyaXNvbnMgPC0gbGlzdCggYygiRGVybWFsXzEiLCAiRGVybWFsXzIiKSwgYygiRGVybWFsXzIiLCAiRGVybWFsXzMiKSwgYygiRGVybWFsXzMiLCAiRGVybWFsXzQiKSApCgp0aWZmKCJ+L09uZURyaXZlIC0gTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkvTm9ydGh3ZXN0ZXJuL1lpIExhYi9NYW51c2NyaXB0L0NvZGVfM3JkRHJhZnQvL2NsdXN0ZXJEaXN0LkZpYjEuMi4zLjQudG8uNF9yZXYudGlmZiIsIHVuaXRzPSJpbiIsIHdpZHRoPTUsIGhlaWdodD01LCByZXM9NjAwKQpzY0hvbG9ncmFwaHk6OmNsdXN0ZXJEaXN0YW5jZUJveHBsb3Qoc3BhdGlhbC5uZWlnaGJvci5EZXJtYWwkc2NIb2xvZ3JhcGh5Lm9iaixhbm5vdGF0aW9uVG9Vc2UgPSAic3BhdGlhbC5uZWlnaGJvcmhvb2QiLHF1ZXJ5LmNsdXN0ZXIubGlzdCA9IChwYXN0ZTAoIkRlcm1hbF8iLGMoMTo0KSkpLHJlZmVyZW5jZS5jbHVzdGVyID0gYygiRGVybWFsXzQiKSkrZ2dwbG90Mjo6c2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gKGJyZXdlci5wYWwoNCwiR3JlZW5zIikpWzE6NF0pKyAKICBnZW9tX3NpZ25pZihjb21wYXJpc29ucyA9IG15X2NvbXBhcmlzb25zLHRlc3QuYXJncyA9IGxpc3Qoc2l6ZT01KSxtYXBfc2lnbmlmX2xldmVsID0gVFJVRSkrTm9MZWdlbmQoKSt0aGVtZShheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2LGZhY2UgPSAiYm9sZCIpLGF4aXMudGl0bGUueCA9IGVsZW1lbnRfYmxhbmsoKSxheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDIwLGZhY2UgPSAiYm9sZCIpICxheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LGhqdXN0PTEpKSt5bGFiKCJTTU4gRGlzdGFuY2UiKQpkZXYub2ZmKCkKCgpgYGAKCmBgYHtyfQpkeW4uZmliIDwtZmluZEdlbmVTcGF0aWFsRHluYW1pY3Moc3BhdGlhbC5uZWlnaGJvci5EZXJtYWwkc2NIb2xvZ3JhcGh5Lm9iaixxdWVyeS5jbHVzdGVyID0gcGFzdGUwKCJEZXJtYWxfIixjKDE6MykpLHJlZi5jbHVzdGVyID0gYygiU21vb3RoIE11c2NsZSIpLGFubm90YXRpb25Ub1VzZSA9ICJzcGF0aWFsLm5laWdoYm9yaG9vZCIsYXNzYXlUb1VzZSA9ICJTQ1QiKQpzcGF0aWFsRHluYW1pY3NGZWF0dXJlUGxvdChzcGF0aWFsLm5laWdoYm9yLkRlcm1hbCRzY0hvbG9ncmFwaHkub2JqLHF1ZXJ5LmNsdXN0ZXIgPSBwYXN0ZTAoIkRlcm1hbF8iLGMoMTozKSkscmVmLmNsdXN0ZXIgPSBjKCJTbW9vdGggTXVzY2xlIiksYW5ub3RhdGlvblRvVXNlID0gInNwYXRpYWwubmVpZ2hib3Job29kIixnZW5lT0kgPSBjKGhlYWQoZHluLmZpYikkZ2VuZSx0YWlsKGR5bi5maWIpJGdlbmUpLGFzc2F5VG9Vc2UgPSAiU0NUIikKYGBgCgpgYGB7cn0KCnRpZmYoIn4vT25lRHJpdmUgLSBOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eS9Ob3J0aHdlc3Rlcm4vWWkgTGFiL01hbnVzY3JpcHQvQ29kZV8ybmREcmFmdC9IdW1hbiBTa2luL0ZpYi5zcGF0aWFsLm5laWdoYm9yLjEtNC5keW4uaGVhdC50aWZmIiwgdW5pdHM9ImluIiwgd2lkdGg9MTIsIGhlaWdodD04LCByZXM9MzAwKQpzcGF0aWFsRHluYW1pY3NGZWF0dXJlUGxvdChzcGF0aWFsLm5laWdoYm9yLkRlcm1hbCRzY0hvbG9ncmFwaHkub2JqLHF1ZXJ5LmNsdXN0ZXI9cGFzdGUwKCJEZXJtYWxfIiwxOjQpLHJlZi5jbHVzdGVyID0gYygiRGVybWFsXzQiKSxhbm5vdGF0aW9uVG9Vc2UgPSAic3BhdGlhbC5uZWlnaGJvcmhvb2QiLGdlbmVPSSA9IGMoIkFQQ0REMSIsIlRXSVNUMiIsIldOVDVBIiwiUE9TVE4iLCJTRlJQMiIsIkdSRU0xIiwiQURIMUIiLCJJR0YxIiwiQUJDQTgiLCJDWENMMTIiLCJNRkFQNSIsIlJHUzUiLCJOT1RDSDMiLCJBQ1RBMiIsIk1ZSDExIiksYXNzYXlUb1VzZSA9ICJTQ1QiLHNlbGYuY29sb3IgPSBjKChjb2xvclJhbXBQYWxldHRlKGJyZXdlci5wYWwoMTIsIlBhaXJlZCIpKSgxMClbMV0pLChicmV3ZXIucGFsKDQsIkdyZWVucyIpKSwoY29sb3JSYW1wUGFsZXR0ZShicmV3ZXIucGFsKDEyLCJQYWlyZWQiKSkoMTApWzM6MTBdKSkpCmRldi5vZmYoKQpgYGAKCgpgYGB7cn0KdGlmZigifi9PbmVEcml2ZSAtIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5L05vcnRod2VzdGVybi9ZaSBMYWIvTWFudXNjcmlwdC9Db2RlXzJuZERyYWZ0L0h1bWFuIFNraW4vRmliLnNwYXRpYWwubmVpZ2hib3IuZGlzdGFsLmNvbDZhNS50aWZmIiwgdW5pdHM9ImluIiwgd2lkdGg9NSwgaGVpZ2h0PTQsIHJlcz0zMDApCmV4cHJlc3Npb25CeURpc3RQbG90KHNwYXRpYWwubmVpZ2hib3IuRGVybWFsJHNjSG9sb2dyYXBoeS5vYmoscXVlcnkuY2x1c3Rlcj1wYXN0ZTAoIkRlcm1hbF8iLDE6MykscmVmLmNsdXN0ZXIgPSBjKCJTbW9vdGggTXVzY2xlIiksYW5ub3RhdGlvblRvVXNlID0gInNwYXRpYWwubmVpZ2hib3Job29kIixnZW5lT0kgPSAiQ09MNkE1Iixhc3NheVRvVXNlID0gIlNDVCIpCmRldi5vZmYoKQoKdGlmZigifi9PbmVEcml2ZSAtIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5L05vcnRod2VzdGVybi9ZaSBMYWIvTWFudXNjcmlwdC9Db2RlXzJuZERyYWZ0L0h1bWFuIFNraW4vRmliLnNwYXRpYWwubmVpZ2hib3IucHJveGltYWwubWZhcDUudGlmZiIsIHVuaXRzPSJpbiIsIHdpZHRoPTUsIGhlaWdodD00LCByZXM9MzAwKQpleHByZXNzaW9uQnlEaXN0UGxvdChzcGF0aWFsLm5laWdoYm9yLkRlcm1hbCRzY0hvbG9ncmFwaHkub2JqLHF1ZXJ5LmNsdXN0ZXI9cGFzdGUwKCJEZXJtYWxfIiwxOjMpLHJlZi5jbHVzdGVyID0gYygiU21vb3RoIE11c2NsZSIpLGFubm90YXRpb25Ub1VzZSA9ICJzcGF0aWFsLm5laWdoYm9yaG9vZCIsZ2VuZU9JID0gIk1GQVA1Iixhc3NheVRvVXNlID0gIlNDVCIpCmRldi5vZmYoKQpgYGAKCmBgYHtyfQpmaWIuc3ViIDwtIHNwYXRpYWwubmVpZ2hib3IuRGVybWFsJHNjSG9sb2dyYXBoeS5vYmokc2NIb2xvZ3JhcGh5LnNjCgp0aWZmKCJ+L09uZURyaXZlIC0gTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkvTm9ydGh3ZXN0ZXJuL1lpIExhYi9NYW51c2NyaXB0L0NvZGVfMm5kRHJhZnQvSHVtYW4gU2tpbi8vZGVybWFsLnNwYXRpYWwuY2x1c3Rlci50aWZmIiwgdW5pdHM9ImluIiwgd2lkdGg9NCwgaGVpZ2h0PTQsIHJlcz0zMDApCkRpbVBsb3QoZmliLnN1Yixncm91cC5ieSA9ICJzcGF0aWFsLm5laWdoYm9yaG9vZCIscmVkdWN0aW9uID0gImluZC51bWFwIixjZWxscyA9IHdoaWNoKGZpYi5zdWIkY2VsbHR5cGUlaW4lIkRlcm1hbCIpKStnZ3RpdGxlKCJTcGF0aWFsIE5laWdoYm9yaG9vZHMiKStzY2FsZV9jb2xvdXJfbWFudWFsKHZhbHVlcyA9IGJyZXdlci5wYWwoNCwiR3JlZW5zIikpK05vTGVnZW5kKCkKZGV2Lm9mZigpCgp0aWZmKCJ+L09uZURyaXZlIC0gTm9ydGh3ZXN0ZXJuIFVuaXZlcnNpdHkvTm9ydGh3ZXN0ZXJuL1lpIExhYi9NYW51c2NyaXB0L0NvZGVfMm5kRHJhZnQvSHVtYW4gU2tpbi8vZGVybWFsLnNldXJhdC5jbHVzdGVyLnRpZmYiLCB1bml0cz0iaW4iLCB3aWR0aD00LCBoZWlnaHQ9NCwgcmVzPTMwMCkKRGltUGxvdChmaWIuc3ViLGdyb3VwLmJ5ID0gIm9yaWcuY2x1c3RlciIscmVkdWN0aW9uID0gImluZC51bWFwIixjZWxscyA9IHdoaWNoKGZpYi5zdWIkY2VsbHR5cGUlaW4lIkRlcm1hbCIpKStnZ3RpdGxlKCJTZXVyYXQgQ2x1c3RlciIpK3NjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gIlNldDEiKStOb0xlZ2VuZCgpCmRldi5vZmYoKQpgYGAKCg==